HTML5系列 08 表单系标签 | 您所在的位置:网站首页 › input type date 年月日 › HTML5系列 08 表单系标签 |
form 表单 基本介绍 form表单可用于向服务端提交数据,它是一个块级标签。 我们常见的登录框、留言板等很多功能都是通过form表单完成的,使用form表单进行数据提交会导致页面的刷新。 下面将采用flask框架作为后端,使用form表单进行一次数据提交。 后端代码: from flask import Flask from flask import request app = Flask(__name__) @app.route("/get", methods=['GET']) def get_handler(): return f"{request.args}" @app.route("/post", methods=['POST']) def post_handler(): return f"{request.form}" if __name__ == "__main__": app.run(debug=True)前端代码: Document username password male female submit整体效果如下: 前端提交的数据会被后端的服务器所接收到。 action 提交地址form表单中action属性可设置表单内容的提交地址。 它指向一个url,一般情况下我们都会加上完整url,但如果你是前后端混合开发项目的话则可以不用加完整url。 下面这个是完整路径,如果点击提交表单它会朝这个url发起请求: 如果你把他改为非完整路径,它会朝当前页面发起请求,注意观察下面与上述地址栏中的端口变化: method 提交方式form表单中的method属性可设置表单提交时的HTTP请求方式。 有2种选项: GET请求(form提交时的默认选择)POST请求它们的区别如下。 GET请求: 没有请求体数据必须控制在1KB之内请求的数据会暴露在地址栏中(?之后,以&进行分割)POST请求: 有请求体数据的大小没有上限请求的数据不会暴露在地址栏中,因此相较于GET请求更加安全以下行为将会触发GET请求: 地址栏直接输入地址并访问点击页面a标签进行链接跳转默认的form表单提交方式img的图像资源请求说的更直白一点,GET请求不能上传文件,但是POST请求可以上传文件。 enctype 数据编码form表单中的enctype属性可设置表单提交时对于提交数据的编码方式。 application/x-www-form-urlencoded:url编码格式,也是form表单默认的编码格式,它不允许上传文件,一般配合GET方式使用multipart/form-data:不对字符进行编码,它允许上传文件,一般配合POST方式进行使用text/plain:将空格转换为“+”号,但不对特殊字符进行编码url编码格式的特点: 将空格转换为 “+” 加号,特殊符号转换为 ASCII HEX 值一言以蔽之,若想上传文件,则必须使用POST请求方式 + multipart/form-data的编码方式: target 提交结果form表单中的target属性可设置表单提交后会在哪里打开action的提交结果。 有以下5个值: _blank:在新窗口中打开action的提交结果_parent:在父窗口中打开action的提交结果_self:在当前窗口中打开action的提交结果(默认值)_top:在顶级窗口中打开action的提交结果framename:在内联框架iframe中打开action的提交结果这个属性其实很少用到,但是该属性可以搭配一些其他的技术做到文件上传的功能,因此这里例举一下,后面也会有所介绍。 示例如下,提交后将会在新的页面打开提交结果: novalidate 取消验证form表单中的novalidate属性可设置表单提交时不会验证填入数据的合法性。 有的input框可以设置为必填,如果一个必填的input框没有填入内容则在提交时浏览器将提示必须填写该字段,我们可以通过设定novalidate来取消这个验证功能。 如下是设置了提交验证的表单: submit当点击提交时浏览器会提示你填入该字段: 如果为form表单加上了novalidate属性后,它将会直接提交,注意观察地址栏中的变化: submit点击提交后页面会刷新一次,这代表已经绕过验证成功提交了: input 输入框 基本介绍input标签为表单输入框,它是一个内联块级标签。 input框有多种形态,只需要设置属性type的值即可,如下表所示: 属性值表现形式对应代码text文本输入框 |
CopyRight 2018-2019 实验室设备网 版权所有 |